package edu.ucsur.tp.dao;

import java.util.ArrayList;
import java.util.List;

import edu.ucsur.tp.beans.*;
import edu.ucsur.tp.data.*;

import java.sql.*;


public class UsuarioDAOMySql implements UsuarioDAO {

	@Override
	public List<UsuarioBean> obtenerTodos() {
		
		List<UsuarioBean> Lista = new ArrayList<UsuarioBean>();
		
		MyData oData = new MyData();
		String xSql;
		
		xSql = "SELECT a.id_usuario, a.nombres, a.apellidos, a.id_perfil, " ;
		xSql += "b.nombre AS perfil_nombre, correo, fechanac, activo ";
		xSql += "FROM usuario a ";
		xSql += "LEFT JOIN usuario_perfil b ON a.id_perfil = b.id_perfil";
		
		ResultSet rs = oData.GetCursor(xSql);
		try {
			while (rs.next()){
				UsuarioBean usu = new UsuarioBean();
				usu.setActivo(rs.getInt("activo"));
				usu.setApellidos(rs.getString("apellidos"));
				usu.setNombres(rs.getString("nombres"));
				usu.setCorreo(rs.getString("nombres"));
				usu.setFechanac(rs.getDate("fechanac"));
				usu.setId_usuario(rs.getString("id_usuario"));
				usu.setId_perfil(rs.getString("id_perfil"));
				usu.setPerfil_nombre(rs.getString("perfil_nombre"));
				Lista.add(usu);
			} 
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return Lista;
	}

	@Override
	public UsuarioBean obtener(String codigo) {
		UsuarioBean usu = new UsuarioBean();
		MyData oData = new MyData();
		ResultSet rs = oData.GetCursor("Select * from usuario where id_usuario=" + ut.StrAp(codigo));
		try {
			if (rs.next()){
				usu.setActivo(rs.getInt("activo"));
				usu.setApellidos(rs.getString("apellidos"));
				usu.setNombres(rs.getString("nombres"));
				usu.setCorreo(rs.getString("nombres"));
				usu.setFechanac(rs.getDate("fechanac"));
				usu.setId_usuario(rs.getString("id_usuario"));
				usu.setId_perfil(rs.getString("perfil"));
				return usu;
			} 
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return null;
	}

	@Override
	public void insertar(UsuarioBean u) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void actualizar(UsuarioBean u) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void eliminar(String codigo) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public List<String> ListaPerfiles() {
		List<String> Lista = new ArrayList<String>();
		String Item = "";
		
		MyData oData = new MyData();
		ResultSet rs = oData.GetCursor("Select * from usuario_perfil");
		try {
			while (rs.next()){
				Item = rs.getString("id_perfil") + " - " + rs.getString("nombre");
				Lista.add(Item);
			} 
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return Lista;
	}

}
